package com.lj.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lj.mp.standard.StandardService;
import com.lj.sys.entity.SysConfig;
import com.lj.sys.param.SysConfigPageParam;
import com.lj.sys.param.SysConfigSaveParam;
import com.lj.sys.param.SysConfigUpdateParam;
import com.lj.sys.result.SysConfigInfoResult;
import com.lj.sys.result.SysConfigPageResult;

import java.util.List;

/**
 * <p>
 * 系统配置表 服务类
 * </p>
 *
 * @author luojing
 * @since 2025-02-21 14:11:02
 */
public interface SysConfigService extends StandardService<SysConfig> {

    IPage<SysConfigPageResult> page(SysConfigPageParam param);

    SysConfigInfoResult info(Long id);

    void save(SysConfigSaveParam param);

    void update(SysConfigUpdateParam param);

    void delete(List<Long> ids);

    /**
     * 通过配置key获取配置值
     *
     * @param configKey 配置key
     * @return 配置的原始值
     */
    String getValue(String configKey);

    Integer getIntegerValue(String configKey);

    Boolean getBooleanValue(String configKey);

    <T> T getJsonValue(String configKey, Class<T> valueClass) ;

}
